package cn.itcast.nems.studentrecord.service.studentrecord;

import cn.itcast.nems.oldems.dto.StudentClazzInfoDTO;
import cn.itcast.nems.oldems.dto.StudentClazzStatisticsInfoDTO;
import cn.itcast.nems.oldems.dto.StudentInfoDTO;
import cn.itcast.nems.studentrecord.dao.entity.StudentRecord;
import cn.itcast.nems.studentrecord.dto.StudentRecordInfoDTO;
import cn.itcast.nems.studentrecord.dto.StudentRecordInfoQueryDTO;
import cn.itcast.nems.studentrecord.dto.StudentRecordRefundInfoDTO;

import java.util.List;
import java.util.Set;

public interface StudentRecordInfoService {

    /**
     * <p>
     * 根据班级ID查询学籍列表
     * </p>
     *
     * @param queryDTO 查询条件
     * @author zhouwei
     * @since 2024/3/12 2:39 PM
     **/
    List<StudentRecordInfoDTO> queryStudentRecordListByClazzId(StudentRecordInfoQueryDTO queryDTO) ;
    /**
     * <p>
     * 学籍学员ID查询学生线详情列表
     * </p>
     *
     * @param studentIds 学员ID
     * @author zhouwei
     * @since 2024/3/12 6:27 PM
     **/
    List<StudentInfoDTO> queryStudentRecordListByStudentIds(Set<Integer> studentIds ,String keyword)  ;

    /**
     * <p>
     * 根据学号查询学生信息（学员ID、学员姓名、性别等）
     * </p>
     *
     * @param studentNos 学号
     * @author zhouwei
     * @since 2024/4/10 11:52 AM
     **/
    List<StudentClazzInfoDTO> queryClazzListByStudentNos (Set<String> studentNos)  ;
    /**
     * <p>
     * 获取班级里的学籍统计信息
     * </p>
     *
     * @param clazzId 班级ID
     * @author zhouwei
     * @since 2024/3/13 1:34 PM
     **/
    StudentClazzStatisticsInfoDTO statisticsByClassId(Integer clazzId ) ;

    /**
     * <p>
     * 查询指定学籍的退学凭单详情
     * </p>
     *
     * @param studentRecordId 学籍ID
     * @author zhouwei
     * @since 2024/3/18 11:36 AM
     **/
    StudentRecordRefundInfoDTO queryRefundJournalByStudentRecordId(String studentRecordId ) ;
}
